Generating images from light fields utilizing virtual viewpoints

ABSTRACT

Systems and methods for the synthesis of light field images from virtual viewpoints in accordance with embodiments of the invention are disclosed. In one embodiment of the invention, a system includes a processor and a memory configured to store captured light field image data and an image manipulation application, wherein the captured light field image data includes image data, pixel position data, and a depth map, and wherein the image manipulation application configures the processor to obtain captured light field image data, determine a virtual viewpoint for the captured light field image data, where the virtual viewpoint includes a virtual location and virtual depth information, compute a virtual depth map based on the captured light field image data and the virtual viewpoint, and generate an image from the perspective of the virtual viewpoint based on the captured light field image data and the virtual depth map.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 14/042,275, filed on Sep. 30, 2013, that claims the benefit of U.S. Provisional Patent Application No. 61/707,691, filed on Sep. 28, 2012, the disclosures of which are hereby incorporated by reference in their entirety.

FIELD OF THE INVENTION

The present invention relates to systems and methods for generating images from light field image data and more specifically to systems and methods for generating images from light field image data using virtual viewpoints.

BACKGROUND

Imaging devices, such as cameras, can be used to capture images of portions of the electromagnetic spectrum, such as the visible light spectrum, incident upon an image sensor. For ease of discussion, the term light is generically used to cover radiation across the entire electromagnetic spectrum. In a typical imaging device, light enters through an opening (aperture) at one end of the imaging device and is directed to an image sensor by one or more optical elements such as lenses. The image sensor includes pixels or sensor elements that generate signals upon receiving light via the optical element. Commonly used image sensors include charge-coupled device (CCDs) sensors and complementary metal-oxide semiconductor (CMOS) sensors.

Image sensors are devices capable of converting an optical image into a digital signal. Image sensors utilized in digital cameras are made up of an array of pixels; the number of pixels determines the megapixel rating of the image sensor. For example, an image sensor having a width×height of 2272×1704 pixels would have an actual pixel count of 3,871,488 pixels and would be considered a 4 megapixel image sensor. Each pixel in an image sensor is capable of capturing light and converting the captured light into electrical signals. In order to separate the colors of light and capture a color image, a Bayer filter is often placed over the image sensor, filtering the incoming light into its red, blue, and green (RGB) components which are then captured by the image sensor. The RGB signal captured by the image sensor plus Bayer filter can then be processed and a color image can be created.

Generally, image capture utilizes a single image sensor, to capture individual images, one at a time. A digital camera typically combines both an image sensor and processing capabilities. When the digital camera takes a photograph, the data captured by the image sensor is provided to the processor by the image sensor. Processors are able to control aspects of a captured image by changing image capture parameters of the sensor elements or groups of sensor elements used to capture the image.

The ISO/IEC 10918-1 standard, more commonly referred to as the JPEG standard after the Joint Photographic Experts Group that developed the standard, establishes a standard process for digital compression and coding of still images. The JPEG standard specifies a codec for compressing an image into a bitstream and for decompressing the bitstream back into an image.

SUMMARY OF THE INVENTION

Systems and methods for the synthesis of light field images from virtual viewpoints in accordance with embodiments of the invention are disclosed. In one embodiment of the invention, a system configured to synthesize images using captured light field image data includes a processor and a memory connected to the processor and configured to store captured light field image data and an image manipulation application, wherein the captured light field image data includes image data, pixel position data, and a depth map, wherein the depth map includes depth information for one or more pixels in the image data, and wherein the image manipulation application configures the processor to obtain captured light field image data, determine a virtual viewpoint for the captured light field image data based on the pixel position data and the depth map for the captured light field image data, where the virtual viewpoint includes a virtual location and virtual depth information, compute a virtual depth map based on the captured light field image data and the virtual viewpoint, and generate an image from the perspective of the virtual viewpoint based on the captured light field image data and the virtual depth map, where the generated image includes a plurality of pixels selected from the image data based on the pixel position data and the virtual depth map.

In another embodiment of the invention, the virtual viewpoint corresponds to a focal plane in an array camera utilized to create the captured light field image data.

In an additional embodiment of the invention, the captured light field image data further includes a reference viewpoint within the captured light field image data and the virtual viewpoint is a separate viewpoint within the captured light field image data from the reference viewpoint.

In yet another additional embodiment of the invention, the captured light field image data was captured by an array camera having an imager array including a plurality of imagers and the reference viewpoint corresponds to the viewpoint of a first imager within the imager array in the array camera.

In still another additional embodiment of the invention, the virtual viewpoint corresponds to the viewpoint of a second imager within the imager array, where the second imager is separate from the first imager.

In yet still another additional embodiment of the invention, the virtual viewpoint is a viewpoint that does not correspond to the viewpoint of any of the imagers within the imager array.

In yet another embodiment of the invention, the virtual viewpoint is selected from a position selected from the group consisting of in front of the imager array and behind the imager array.

In still another embodiment of the invention, the image manipulation application further configures the processor to generate an image from the perspective of the virtual viewpoint by projecting pixels from the captured light field image data based on the pixel position data and the depth map, where the projected pixels are described in the image data and the depth map.

In yet still another embodiment of the invention, the captured light field image data further includes occluded pixel information describing pixels not visible from a reference viewpoint of the captured light field image data and the projected pixels include at least one occluded pixel in the occluded pixel information that is visible from the perspective of the virtual viewpoint.

In yet another additional embodiment of the invention, at least one projected pixel in the generated image is not described in the image data, the pixel position data, and the depth map and the image manipulation application further configures the processor to generate the at least one projected pixel by resampling the image data, the pixel position data, and the depth map.

In still another additional embodiment of the invention, a pinhole camera model is utilized to project pixels within the generated image based on light rays projecting from the virtual viewpoint, where each projected pixels is associated with at least one of the projected light rays.

In yet still another additional embodiment of the invention, projected pixel depth information is determined for at least one pixel in the generated image based on the depth map, the virtual viewpoint, and the light rays associated with the projected pixel.

In yet another embodiment of the invention, the depth information for a projected pixel is based on minimizing the variance for the projected pixel across the image data within the captured light field image data.

In still another embodiment of the invention, the image manipulation application further configures the processor to combine projected pixels having the same location within the generated image.

In yet still another embodiment of the invention, the pixels are combined based on the weighted average of the pixels, where the weighted average of the pixels is the inverse of the distance from the imager from which the projected pixel originated to the virtual viewpoint.

In yet another additional embodiment of the invention, the system further includes an input device configured to obtain input data indicative of a position within the captured light field image data.

In still another additional embodiment of the invention, the input device is a touchscreen interface.

In yet still another additional embodiment of the invention, the input device is a sensor configured to obtain spatial location information.

In yet another embodiment of the invention, the input device is a camera configured to obtain input data selected from the group consisting of head tracking data and gaze tracking data.

In still another embodiment of the invention, the virtual viewpoint is selected based on the input data.

In yet still another embodiment of the invention, the image manipulation application further configures the processor to obtain a first input data indicative of a first position within the captured light field image data, determine a first virtual viewpoint based on the first input data, generate a first image from the perspective of the first virtual viewpoint, obtain a second input indicative of a second position within the captured light field image data, where the second position is separate from the first position, determine a second virtual viewpoint based on the second input data, generate at least one intermediate virtual viewpoint by interpolating between the first virtual viewpoint and the second virtual viewpoint, generate at least one intermediate image based on the generated at least one intermediate virtual viewpoints, where each intermediate image is from the perspective of an intermediate virtual viewpoint, and generate a second image from the perspective of the second virtual viewpoint.

In yet another additional embodiment of the invention, the image is generated utilizing a super-resolution process.

Still another embodiment of the invention includes a process for generating an image from a virtual viewpoint, including obtaining captured light field image data using an image manipulation device, where the captured light field image data includes image data, pixel position data, and a depth map and where the depth map includes depth information for one or more pixels in the image data, determining a virtual viewpoint for the captured light field image data based on the pixel position data and the depth map for the captured light field image data using the image manipulation device, where the virtual viewpoint includes a virtual location and virtual depth information, computing a virtual depth map based on the captured light field image data and the virtual viewpoint using the image manipulation device, and generating an image from the perspective of the virtual viewpoint based on the captured light field image data and the virtual depth map using the image manipulation device, where the generated image includes a plurality of pixels selected from the image data based on the pixel position data and the virtual depth map.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A conceptually illustrates an array camera including a 5×5 imager array connected with a processor in accordance with an embodiment of the invention.

FIG. 1B conceptually illustrates a 5×5 array camera module in accordance with an embodiment of the invention.

FIG. 1C conceptually illustrates a color filter pattern for a 4×4 array camera module in accordance with an embodiment of the invention.

FIG. 2 is a diagram conceptually illustrating a device capable of processing light field images in accordance with an embodiment of the invention.

FIG. 3A is a diagram conceptually illustrating virtual viewpoints for a given light field in accordance with an embodiment of the invention.

FIG. 3B is a diagram conceptually illustrating a light field image rendered from a virtual viewpoint for a given light field in accordance with an embodiment of the invention.

FIG. 3C is a diagram conceptually illustrating a light field image rendered from a second virtual viewpoint for a given light field in accordance with an embodiment of the invention.

FIG. 4 is a flow chart conceptually illustrating a process for generating a light field image from a virtual viewpoint in a light field in accordance with an embodiment of the invention.

FIG. 4B is a flow chart conceptually illustrating a process for generating a light field image from a virtual viewpoint using projected light rays in accordance with an embodiment of the invention.

FIG. 5 is a flow chart conceptually illustrating a process for reprojecting light rays in relation to a virtual viewpoint in accordance with an embodiment of the invention.

FIG. 6 is a flow chart conceptually illustrating a process for computing a depth map for a virtual viewpoint in accordance with an embodiment of the invention.

FIG. 7 is a flow chart conceptually illustrating a process for projecting pixels to form a light field image corresponding to a virtual viewpoint in accordance with an embodiment of the invention.

FIG. 8 is a flow chart conceptually illustrating a process for interactively generating light field images from virtual viewpoints in accordance with an embodiment of the invention.

DETAILED DESCRIPTION

Turning now to the drawings, systems and methods for generating images from light field image data using virtual viewpoints in accordance with embodiments of the invention are illustrated. A light field is often defined as a 4D function characterizing the light from all direction at all points in a scene and can be interpreted as a two-dimensional (2D) collection of 2D images of a scene. Array cameras, such as those described in U.S. patent application Ser. No. 12/935,504 entitled “Capturing and Processing of Images using Monolithic Camera Array with Heterogeneous Imagers” to Venkataraman et al., can be utilized to capture light fields. In a number of embodiments, super-resolution processes such as those described in U.S. patent application Ser. No. 12/967,807 entitled “Systems and Methods for Synthesizing High Resolution Images Using Super-Resolution Processes” to Lelescu et al., are utilized to synthesize a higher resolution 2D image or a stereo pair of higher resolution 2D images from the lower resolution images in the light field captured by an array camera. The terms high or higher resolution and low or lower resolution are used here in a relative sense and not to indicate the specific resolutions of the images captured by the array camera. The disclosures of U.S. patent application Ser. No. 12/935,504 and U.S. patent application Ser. No. 12/967,807 are hereby incorporated by reference in their entirety.

A file containing an image synthesized from light field image data and metadata derived from the light field image data can be referred to as a light field image file. The encoded image in a light field image file is typically synthesized using a super resolution process from a number of lower resolution images. The light field image file can also include metadata describing the synthesized image derived from the light field image data that enables post processing of the synthesized image. In many embodiments, a light field image file is created by encoding an image synthesized from light field image data and combining the encoded image with a depth map derived from the light field image data. In several embodiments, the encoded image is synthesized from a reference viewpoint and the metadata includes information concerning pixels in the light field image that are occluded from the reference viewpoint. In a number of embodiments, the metadata can also include additional information including (but not limited to) auxiliary maps such as confidence maps, edge maps, occluded pixel information, and missing pixel maps that can be utilized during post processing of the encoded image to improve the quality of an image rendered using the light field image data file. By transmitting a light field image file including an encoded image, and metadata describing the encoded image, a rendering device (i.e. a device configured to generate an image rendered using the information within the light field image file) can render new images using the information within the file without the need to perform super resolution processing on the original light field image data. In this way, the amount of data transmitted to the rendering device and the computational complexity of rendering an image is reduced. In several embodiments, rendering devices are configured to perform processes including (but not limited to) refocusing the encoded image based upon a focal plane specified by the user, synthesizing an image from a different viewpoint, and generating a stereo pair of images. A variety of file formats may be utilized to store light field image files in accordance with embodiments of the invention. One such file format is the JPEG-DX extension to ISO/IEC 10918-1 described in U.S. Provisional Patent Application No. 61/540,188 entitled “JPEG-DX: A Backwards-compatible, Dynamic Focus Extension to JPEG”, to Venkataraman et al., filed Sep. 28, 2011, the entirety of which is incorporated by reference.

An image is captured from the viewpoint of a camera. In many embodiments, array cameras capture at least one image of a scene from a reference viewpoint and the reference viewpoint is used to synthesize an image. Stated another way, the reference viewpoint corresponds to the viewpoint of one focal plane or a reference focal plane in an imager array. The term virtual viewpoint describes a viewpoint used to synthesize an image that may or may not correspond to one of the viewpoints of the focal planes in the imager array that capture the light field image data. Given an array of images taken using an array camera, an image from the perspective of a virtual viewpoint in a light field can be synthesized. In several embodiments, the viewpoint from which the image is synthesized can be the viewpoint of a focal plane in an imager array or from an interpolated position, such as a point between focal planes, in front of the imager array, or behind the imager array. In many embodiments of the invention, images are synthesized from virtual viewpoints. In a number of embodiments, the (virtual) viewpoint used to synthesize the image incorporates a rotation and/or translation of one or more of the optical axes of the viewpoint. In a variety of embodiments, devices capable of displaying images synthesized from light field image data include one or more input devices, such as cameras configured to allow for gaze and/or motion tracking and/or sensors configured to determine the orientation of the device in space. These devices can utilize input received from the input devices to select one or more virtual viewpoints within the light field image data and synthesize images from the virtual viewpoints. In this way, the devices allow for the exploration and interaction with the light field image data by dynamically synthesizing multiple images from multiple virtual viewpoints, providing a variety of views of the scene described in the light field image data.

Using the 2D images in a captured light field, spatial X/Y luma/chroma values, and/or depth information for each pixel in each image captured by the array camera can be computed. In many embodiments, light fields contain additional information captured by an array camera, such as location data and/or data computed from information captured by an array camera. In many embodiments, the synthesized image includes a depth map as metadata that can describe the distance to objects in a scene. By utilizing depth information associated with each pixel in a light field, the light field can be utilized in an interactive manner in a variety of ways not possible with an image taken using a traditional camera. One way in which light fields can be utilized is the detection of solid objects; the solid objects are utilized in methods for synthesizing light fields in accordance with embodiments of the invention. Systems and methods for detecting objects in a light field are disclosed in U.S. patent application Ser. No. 12/967,807, the entirety of which is incorporated by reference above.

A variety of user interfaces can be utilized to enable interaction with and exploration of light fields. Systems and methods for capturing light fields and synthesizing images from virtual viewpoints in accordance with embodiments of the invention are described below.

Array Camera Architecture

Array cameras in accordance with embodiments of the invention are configured so that the array camera software can capture light fields and synthesize images from virtual viewpoints within the light field. An array camera including an imager array in accordance with an embodiment of the invention is illustrated in FIG. 1. The array camera 100 includes an imager array 102 configured to communicate with a processor 108. The processor receives image data generated by the imager array. The imager array 102 includes multiple focal planes 104. Imager arrays including multiple focal planes are discussed in U.S. patent application Ser. No. 13/106,797 entitled “Architectures for System on Chip Array Cameras,” to Pain et al., the disclosure of which is incorporated by reference in its entirety.

Turning now to FIG. 1B, an array camera module in accordance with an embodiment of the invention is conceptually illustrated. The array camera module 150 includes an imager array 152 including an array of focal planes 154 along with a corresponding optic array 156 including an array of lens stacks 158. Within the array of lens stacks, each lens stack 158 creates an optical channel that forms an image of the scene on an array of light sensitive pixels within a corresponding focal plane 154. Each pairing of a lens stack 158 and focal plane 154 forms a single camera 104 within the camera module. Each pixel within a focal plane 154 of a camera 104 generates image data that can be sent from the camera 104 to the processor 108. In many embodiments, the lens stack within each optical channel is configured so that pixels of each focal plane 158 sample the same object space or region within the scene. In several embodiments, the lens stacks are configured so that the pixels that sample the same object space do so with sub-pixel offsets to provide sampling diversity that can be utilized to recover increased resolution through the use of super-resolution processes. The term sampling diversity refers to the fact that the images from different viewpoints sample the same object in the scene but with slight sub-pixel offsets. By processing the images with sub-pixel precision, additional information encoded due to the sub-pixel offsets can be recovered when compared to simply sampling the object space with a single image.

In the illustrated embodiment, the focal planes are configured in a 5×5 array. In other embodiments, any of a variety of array configurations can be utilized including linear arrays. Each focal plane 154 of the imager array is capable of capturing an image of the scene. The sensor elements utilized in the focal planes can be individual light sensing elements such as, but not limited to, traditional CIS (CMOS Image Sensor) pixels, CCD (charge-coupled device) pixels, high dynamic range sensor elements, multispectral sensor elements and/or any other structure configured to generate an electrical signal indicative of light incident on the structure. In many embodiments, the sensor elements of each focal plane have similar physical properties and receive light via the same optical channel and color filter (where present). In other embodiments, the sensor elements have different characteristics and, in many instances, the characteristics of the sensor elements are related to the color filter applied to each sensor element.

In a variety of embodiments, color filters in individual cameras can be used to pattern the camera module with π filter groups as further discussed in U.S. Provisional patent application Ser. No. 13/875,248 entitled “Camera Modules Patterned with pi FilterGroups” filed May 1, 2013, the disclosure of which is incorporated by reference herein in its entirety. Any of a variety of color filter configurations can be utilized including the configuration in FIG. 1C including eight Green cameras, four Blue cameras, and four Red cameras, where the cameras are distributed around the center of the camera. The cameras can be used to capture data with respect to different colors, or a specific portion of the spectrum. In contrast to applying color filters to the pixels of the camera, color filters in many embodiments of the invention are included in the lens stack. For example, a Green color camera can include a lens stack with a Green light filter that allows Green light to pass through the optical channel. In many embodiments, the pixels in each focal plane are the same and the light information captured by the pixels is differentiated by the color filters in the corresponding lens stack for each filter plane. Although a specific construction of a camera module with an optic array including color filters in the lens stacks is described above, camera modules including π filter groups can be implemented in a variety of ways including (but not limited to) by applying color filters to the pixels of the focal planes of the camera module similar to the manner in which color filters are applied to the pixels of a conventional color camera. In several embodiments, at least one of the cameras in the camera module can include uniform color filters applied to the pixels in its focal plane. In many embodiments, a Bayer filter pattern is applied to the pixels of one of the cameras in a camera module. In a number of embodiments, camera modules are constructed in which color filters are utilized in both the lens stacks and on the pixels of the imager array.

In several embodiments, the processor 108 is configured to take the image data captured by the sensor and synthesize high resolution images. In a number of embodiments, the captured light field image data includes color information and depth information. In many embodiments of the invention, the image is synthesized from a reference viewpoint, typically that of a reference focal plane 104 within the imager array 102. In many embodiments, an array of images is created using the image data captured by the focal planes in the imager array and can be considered to be a number of images of the scene captured from different viewpoints. In several embodiments, the processor 108 is configured to take the image data captured by the sensor and create a light field containing the captured image data. In several embodiments, the array of images is utilized by the processor 108 to synthesize high resolution images.

The processor 108 is able to synthesize an image from a virtual viewpoint. In a number of embodiments, a virtual viewpoint is any viewpoint which is not the reference viewpoint. In several embodiments, the virtual viewpoint corresponds to a viewpoint of one of the focal planes 104 in the imager array 102. In many embodiments, the processor is able to synthesize an image from a virtual viewpoint, which does not correspond to any focal plane 104 in the imager array 102.

Although a specific array camera architecture is illustrated in FIGS. 1A, 1B, and 1C, alternative architectures can also be utilized in accordance with embodiments of the invention. Systems and methods for synthesizing images from virtual viewpoints in accordance with embodiments of the invention are discussed below.

Devices Capable of Synthesizing Images

Users may utilize a variety of devices to interact with images synthesized using light field image data, including (but not limited to) devices with sensors 222 see FIG. 2) capable of capturing light fields and synthesizing images. A diagram of a device capable of synthesizing and manipulating images synthesized from light field image data in accordance with an embodiment of the invention is illustrated in FIG. 2. The device 200 contains a processor 210 capable of being configured via software (e.g. an image synthesis application) to load and manipulate images synthesized from light field image data. In several embodiments, the image synthesis application configures the processor to synthesize images from virtual viewpoints based on the light field image data utilizing processes similar to those described below. In many embodiments of the invention, the processor 210 is connected to a sensory array 220 capable of capturing light fields. An array camera includes the processor 210 and the imager array 220.

In many embodiments, the processor is connected to a display 212 capable of displaying 2D images. In several embodiments, the display 212 is capable of displaying 3D images. In a variety of embodiments, the display displays 3D images utilizing a stereo pair of images. The stereo pairs of images can include images synthesized from captured light field image data from different virtual viewpoints. In a number of embodiments, the processor 210 is connected to a user interface 214, such as a touchscreen interface, a pointing device, and/or a keyboard. In several embodiments, the user interface 214 can be a camera or array camera capable of tracking user movements. As is described in more detail below, the user interface 214 can utilize input received from the input devices to select one or more virtual viewpoints within the light field image data and synthesize images from the virtual viewpoints.

In many embodiments, the processor 210 is connected to a storage device 216. The storage device 216 is capable of storing light fields and light field image files and delivering those images to the processor 210 for manipulation. In a number of embodiments, the processor 210 is connected to a network interface 218 capable of communication via a network. The network communication involves receiving and transmitting light fields and light field image files, where the light fields and light field image files can be stored in storage device 216 (if present) or loaded directly into the processor 210.

Although specific devices capable of synthesizing and manipulating images synthesized from light field image data is described above with respect to FIG. 2, any device capable of synthesizing images from different viewpoints using light field image data and/or generating images from different viewpoints using image data contained within a light field image file can be used in accordance with embodiments of the invention. Methods for synthesizing images from a virtual viewpoint in a light field in accordance with embodiments of the invention are discussed below.

Virtual Viewpoints and Light Fields

As described above, an image can be synthesized from a reference viewpoint or from a virtual viewpoint in a captured light field. Images synthesized from a light field from a reference viewpoint and from virtual viewpoints in accordance with embodiments of the invention are illustrated in FIGS. 3A, 3B, and 3C. The image 310 captures a scene containing a person 317, a box 318, and a tree 319. The image 310 has been captured from the reference viewpoint of a light field camera (not illustrated). Virtual viewpoints V1 312 and V2 314 are shown, where the dashed lines projection from virtual viewpoints V1 312 and V2 314 conceptually illustrate the sight lines from the virtual viewpoints.

An image synthesized from virtual viewpoint V1 312 in accordance with an embodiment of the invention is illustrated in FIG. 3B. The image 320 illustrates the same person 317, box 318, and tree 319 as in light field image 310. However, from the perspective of virtual viewpoint V1 312, the person 317 appears to be located in front of box 318 and the tree 319 appears closer to box 318 than from the reference viewpoint of the light field camera.

An image synthesized from virtual viewpoint V2 314 in accordance with embodiments of the invention is illustrated in FIG. 3C. The image 330 illustrates the same person 317, box 318, and tree 319 as in the image 310 and the image 320. However, from the perspective of virtual viewpoint V2 314, the person 317 appears to be located closer to the box 318 and further to the right of the box 318 than in the reference viewpoint or virtual viewpoint V1 312 and the tree 319 appears closer to box 318 than from the reference viewpoint of the light field camera, yet further behind the box 318 than in the light field image synthesized using virtual viewpoint V1 312.

Although a specific illustration of images synthesized from a variety of viewpoints in a captured light field is described above and illustrated in FIGS. 3A, 3B, and 3C, the above is only an example and any variety of light fields and virtual viewpoints can be utilized in accordance with embodiments of the invention. Methods for synthesizing images from virtual viewpoints in light fields in accordance with embodiments of the invention are described below.

Synthesizing an Image from a Virtual Viewpoint in a Light Field

An image can be synthesized from a variety of viewpoints within a captured light field. A process for capturing a light field and using the light field to synthesize an image from a virtual viewpoint in accordance with an embodiment of the invention is illustrated in FIG. 4. The process 400 includes selecting (410) a virtual viewpoint in a light field. In a number of embodiments, the displacement is calculated (412) for each image in the light field to the virtual viewpoint. In many embodiments, the depth map is computed (414) for the virtual viewpoint and an image is synthesized (416) from the virtual viewpoint.

In several embodiments, a light field includes an array of images. In many embodiments of the invention, the virtual viewpoint selected (410) corresponds to a camera (i.e. the viewpoint of an imager within an imager array) which captured one of the images in the array of images. In a number of embodiments, the virtual viewpoint selected (410) does not correspond to the viewpoints of any of the imagers within the imager array that captured the light field. In many embodiments, synthesizing (416) an image utilizes color and depth information from the array of images. In several embodiments, synthesizing (416) an image results in a color image being created. A variety of processes can be utilized to synthesize (416) an image from a light field, including those disclosed in U.S. patent application Ser. No. 12/967,807 incorporated by reference above.

A specific process for synthesizing an image from a virtual viewpoint in a light field is described above; however, a variety of processes for synthesizing an image from light field image data can be utilized in accordance with embodiments of the invention. Processes involving rendering images from different viewpoints using images and metadata contained within light field image files in accordance with embodiments of the invention are discussed further below.

Rendering Images Using a High Resolution Image

As described above, images may be synthesized from light field image data. However, many devices lack the capability to process light fields directly. These devices can utilize light field image files in order to render images from virtual viewpoints without needing the capability to directly process a light field and/or to synthesize images from virtual viewpoints using super resolution processes. A process for rendering an image from a virtual viewpoint within a light field using the pixels, depth information, and information concerning occluded pixels contained within a light field image file is illustrated in FIG. 4B. The process 450 includes selecting (460) a virtual viewpoint within the light field. Light rays are projected (462). In a number of embodiments, a depth map is calculated (464). The depth map can be utilized in a variety of ways, including solid object detection in the synthesized image and/or determination of three-dimensional information for synthesizing a three-dimensional image. The image is generated (466).

In a variety of embodiments, virtual viewpoints are selected (460) utilizing processes similar to those described below. In many embodiments, the light rays are projected (462) from the virtual viewpoint selected (460) to the pixels and occluded pixels contained within the light field image file. For example, from the virtual viewpoint, some occluded pixels can be visible from the virtual viewpoint, but not from the reference viewpoint. Likewise, some of the pixels visible from the reference viewpoint can be occluded pixels relative to the virtual viewpoint. In several embodiments, the visible and occluded pixels are determined by computing the geometry of the pixels using depth information. In many embodiments, a rendered image may not contain a pixel corresponding to a light ray projected from a virtual viewpoint (i.e. missing pixels). In a number of embodiments, a variety of resampling techniques, such as bilinear resampling, can be utilized in accordance with embodiments of the invention to create or fill missing pixels. Additionally, missing pixels can be estimated using probabilistic methods including, but not limited to, expectation-maximization, Markov networks, or texture synthesis methods such as inpainting. Cues such as color, depth, and saliency can be used to infer the missing pixels as appropriate to the requirements of specific applications in accordance with embodiments of the invention. Images can be generated (466) utilizing a variety of processes, including synthesizing images utilizing a super-resolution process (such as the processes described above) and rendering an image utilizing projected pixel information and depth information (such as the processes described below) in accordance with many embodiments of the invention.

By way of example, referring to FIGS. 3A, 3B, and 3C, images 320 and 330 can be images rendered from the perspective of virtual viewpoints V1 312 and V2 314 using the pixels, depth information, and information concerning occluded pixels contained in a light field image file. Although a specific process for rendering an image based upon a light field image file is described above, a number of processes can be utilized for rendering images from light field image data utilizing virtual viewpoints in accordance with embodiments of the invention. Much of the discussion that follows references synthesizing images from virtual viewpoints. As can be readily appreciated, similar processes can be utilized in rendering an image from a light field image file in accordance with embodiments of the invention. Methods for projecting light rays and creating images from virtual viewpoints using captured light fields in accordance with embodiments of the invention are described below.

Projecting Light Rays

In accordance with many embodiments of the invention, when rendering an image from a different perspective to an image synthesized from light field image data, the displacement of pixels and/or objects between the different viewpoints is calculated. Calculating the displacement of an object in a captured scene involves projecting light rays from a virtual viewpoint to the object. A process for projecting light rays in accordance with an embodiment of the invention is illustrated in FIG. 5. The process 500 includes determining (510) the location of the camera. Displacements are determined (512) for each pixel in an object in the captured scene. The depth for each pixel in the object is determined (514). The pixels are mapped (516) to the appropriate location.

In many embodiments, the location of the camera is determined (510) based on a virtual viewpoint and a pinhole camera model. In several embodiments, a pinhole camera model enables determining (512) displacements of one or more pixels utilizing the formula:

$\begin{bmatrix} x_{2} \\ y_{2} \end{bmatrix} = {\frac{1}{z + t_{z}}\begin{bmatrix} {{x_{1}z} + t_{x}} \\ {{y_{1}z} + t_{y}} \end{bmatrix}}$ where, for camera C_(ij), pixel (x₁, y₁) maps to pixel (x₂, y₂), {t_(x),t_(y),t_(z)} are the displacements from camera C_(ij) to the virtual viewpoint, and z is the distance from the camera C_(ij) to the object.

In a variety of embodiments, the location of the camera is determined (510) utilizing a rotation matrix utilizing the formula:

$\begin{bmatrix} x_{2} \\ y_{2} \end{bmatrix} = {\left( {{Rp} + T} \right)_{1}\text{/}\left( {{Rp} + T} \right)_{3}}$ where R is a 3×3 rotation matrix, T is a 3×1 translation vector, p is a three-dimensional point in space with respect to one camera,

$\begin{bmatrix} x_{2} \\ y_{2} \end{bmatrix}\quad$ are the coordinates of p in the virtual camera, and the subscripts indicate the ith coordinate of vector v. In many embodiments, the coordinates are normalized for focal length and pixel size of the imager array capturing the light field image data.

In a variety of embodiments, the depth for each pixel is determined (514) based on the location determined (510) of the camera. In many embodiments, pixels are mapped (516) based on the determined (510) camera location and the determined (514) pixel depth information. Processes that can be utilized to determine (514) pixel depths and map (516) pixels in accordance with embodiments of the invention are described below.

Although a specific process for projecting light rays is described above, a number of processes in accordance with embodiments of the invention can be utilized in accordance with embodiments of the invention, including those embodiments which calculate the displacement of an image without projecting light rays. Systems and methods for calculating depth and rendering images from virtual viewpoints using images synthesized from light field image data and depth maps in accordance with embodiments of the invention are described below.

Computing Depth at a Virtual Viewpoint

In accordance with several embodiments of the invention, synthesizing an image from a virtual viewpoint using a light field having an array of images involves computing the depth for each image in the array of images from the virtual viewpoint. A process for computing the depth for each image in an array of images from a virtual viewpoint in accordance with an embodiment of the invention is illustrated in FIG. 6. The process 600 involves shifting (610) images into a stack of images for a particular depth level. The variance of each pixel in the image stack is computed (612). Steps (610) and (612) are repeated until each depth level in the light field has been considered (614). The depth level is determined (616).

In a number of embodiments, only the green images are shifted (610) into the stack of images; in other embodiments, any variety of subsets of images, including all images in the stack of images, may be shifted (610). In many embodiments, determining (616) the depth level involves minimizing the variance for a particular pixel across the image stack. In several embodiments, images are shifted to different positions using bilinear resampling, although a variety of resampling techniques may be utilized in accordance with embodiments of the invention.

Although a specific process for computing the depth for an array of images is described above, a number of processes can be utilized in accordance with embodiments of the invention. In particular, processes that utilize depth information with respect to a reference viewpoint in an array of images can be utilized as appropriate to the requirements of specific applications in accordance with embodiments of the invention. Systems and methods for projecting pixels based on a virtual viewpoint and synthesizing images using virtual viewpoints in accordance with embodiments of the invention are described below.

Projecting Pixels Based on a Virtual Viewpoint Using Depth Information

In accordance with embodiments of the invention, synthesizing a light field from a virtual viewpoint from a light field having an array of images involves projecting each pixel in the array of images based on the virtual viewpoint. A process for projecting pixels based on a virtual viewpoint in accordance with an embodiment of the invention is illustrated in FIG. 7. The process 700 includes determining (710) the depth for each pixel using the virtual viewpoint. Pixels are projected (712) based on the virtual viewpoint. In many embodiments, if multiple pixels project to the same location, the pixels are combined (714).

In a number of embodiments, processes similar to those described above with regard to FIG. 6 are utilized to determine (710) the depth for each pixel. In several embodiments, the process described above with regard to FIG. 5 is utilized to project (712) pixels based on the virtual viewpoint. In many embodiments, the combination (714) of pixels utilizes the weighted average of the pixels. In a number of embodiments, the weighted average of the pixels is the inverse of the distance from the camera from which the pixel originated to the virtual viewpoint. In many embodiments of the invention, the projected (712) pixels are utilized to render an image from the virtual viewpoint. In a number of embodiments, the projected (712) pixels are utilized to determine occlusion for one or more pixels based upon the projection (712) of the pixels from the virtual viewpoint.

In many embodiments, the projected (712) pixels are utilized to synthesize stereoscopic images (or video) from a captured light field image. The synthesis of stereoscopic images from virtual viewpoints includes synthesizing two or more images from different virtual viewpoints. In a variety of embodiments, two images are synthesized from two virtual viewpoints differing in their x-coordinates. The baseline (e.g. the distance between optical centers of the two synthesized images) can be selected to adjust the depth impression, comfort, proper display size, or optimal viewing distance of the stereoscopic image created using the synthesized images. These images can be rendered with parallel or converging optical axes as appropriate to the requirements of specific applications in accordance with embodiments of the invention.

These stereoscopic images can be used for many applications, such as gaming, augmented reality using captured images, and vivid depth presentation of images on 3D displays. Stereo images can also be consumed on 2D displays, as the rapid alternation of left and right stereo views also gives a vivid depth sensation. Additionally, images synthesized from multiple virtual viewpoints are utilized to improve the depth map associated with the captured light field image data by providing additional information regarding the depth of particular pixels within the captured scene and/or by providing information regarding occluded pixels.

Although specific processes for projecting pixels in two and three dimensions based on a virtual viewpoint is described above, a variety of processes can be utilized in accordance with embodiments of the invention. Systems and methods for manipulating virtual viewpoints and synthesizing images in accordance with embodiments of the invention are described below.

Interactive Virtual Viewpoints

When viewing a light field, it is often desirable to provide users with the ability to change the viewpoint of the light field. In other words, users have the ability to change the viewpoint within a light field of an image being displayed. A process for interacting with the viewpoint of an image in accordance with an embodiment of the invention is illustrated in FIG. 8. The process 800 includes receiving (810) input. In many embodiments, the input is received (810) using a touchscreen interface. In several embodiments, the point selected on the touchscreen interface is used as the virtual viewpoint for the image. An image is synthesized (814) from a light field or rendered using a light field image file based upon the selected virtual viewpoint.

In many embodiments, a number of images are interpolated (812) between the original viewpoint and the selected virtual viewpoint. In several embodiments, interpolating (812) the image involves smoothly transitioning from the original viewpoint to the virtual viewpoint. In several embodiments, smoothly transitioning from the original viewpoint to the virtual viewpoint involves generating a number of images corresponding to a set of viewpoints interpolated (812) between the original viewpoint and the virtual viewpoint.

In accordance with a number of embodiments of the invention, interpolating (812) between viewpoints allows for a high degree of user interaction. In many embodiments of the invention, devices capable of displaying and manipulating light fields and images rendered using light field image files include head and/or gaze tracking capabilities. In these embodiments, the process 800 allows for users to view a variety of virtual viewpoints within a light field corresponding to where the user is looking. Furthermore, users may step into or out of a light field by generating images using virtual viewpoints in front of or behind the reference viewpoint; the detection of which can be performed using the head and/or gaze tracking capabilities of the device. In many embodiments, the head and/or gaze tracking may be performed on a plurality of images simultaneously in order to provide a 3D experience.

In accordance with embodiments of the invention, devices capable of manipulating light fields and images rendered using light field image files may include the capability of detecting the location of the device in space. These spatial location capabilities can be utilized using a variety of sensors as appropriate to the requirements of specific applications in accordance with embodiments of the invention, including, but not limited to, accelerometers, gyroscopes, and altimeters. Devices with spatial location determination abilities allow users to tilt and pan around the light field by generating images using virtual viewpoints determined using the spatial location ability of the device.

In a number of embodiments, devices capable of manipulating light fields and/or images rendered using light field image files contain several of the capabilities described above; these devices can combine the above described techniques in a variety of ways to allow users to determine virtual viewpoints for synthesizing light field images and/or images rendered using light field image files. Specific processes for interacting with a light field and/or an image rendered using a light field image file are described above; however, a variety of processes not described above can be utilized in accordance with embodiments of the invention.

Although the present invention has been described in certain specific aspects, many additional modifications and variations would be apparent to those skilled in the art. It is therefore to be understood that the present invention can be practiced otherwise than specifically described. Thus, embodiments of the present invention should be considered in all respects as illustrative and not restrictive. Accordingly, the scope of the invention should be determined not by the embodiments illustrated, but by the appended claims and their equivalents. 

What is claimed is:
 1. A system configured to synthesize images using a plurality of images captured from multiple viewpoints, comprising: a processor; and a memory connected to the processor and configured to store the plurality of images captured from the multiple viewpoints and an image manipulation application; wherein the plurality of images comprises: image data and pixel position data, the plurality of images being captured using an array camera comprising a plurality of cameras that capture the plurality of images from viewpoints of the plurality of cameras, wherein multiple cameras in the array camera simultaneously capture the plurality of images, the viewpoints of the plurality of cameras including a viewpoint of a first camera within the array camera and additional viewpoints, the additional viewpoints including a viewpoint of a second camera within the array camera, and wherein the plurality of images includes occluded pixel information captured from at least one of the additional viewpoints describing pixels not visible from the viewpoint of the first camera; and wherein the image manipulation application configures the processor to: obtain the plurality of images; generate a depth map from the viewpoint of the first camera for the plurality of images using the plurality of images, where the depth map comprises depth information for one or more pixels in the image data, wherein generating the depth map comprises: (1) for each of a plurality of depth levels, shifting the plurality of images into a stack of images for a particular depth level and computing a variance for a particular pixel in the image stack; and (2) determining a depth level for the particular pixel by minimizing the variance for the particular pixel across the image stack; determine a virtual viewpoint for the plurality of images based on the pixel position data and the depth map for the plurality of images, where the virtual viewpoint comprises a virtual location and virtual depth information, wherein the virtual viewpoint is a separate viewpoint from the viewpoint of the first camera, and is a viewpoint from an interpolated position between the viewpoint of the first camera and the viewpoint of the second camera; compute a virtual depth map based on the plurality of images by projecting pixel depth information from the depth map from the viewpoint of the first camera to the virtual viewpoint; and generate an image from the perspective of the virtual viewpoint based on the plurality of images and the virtual depth map by projecting pixels from the plurality of images based on the pixel position data and the depth map, where: the generated image comprises a plurality of pixels selected from the image data based on the pixel position data and the virtual depth map, and the pixels that are projected include at least one occluded pixel from the occluded pixel information that is visible from the perspective of the virtual viewpoint.
 2. The system of claim 1, wherein: at least one projected pixel in the generated image is not described in the image data, the pixel position data, and the depth map; and the image manipulation application further configures the processor to generate the at least one projected pixel by resampling the image data, the pixel position data, and the depth map.
 3. The system of claim 1, wherein a pinhole camera model is utilized to project pixels within the generated image based on light rays projecting from the virtual viewpoint, where each projected pixel is associated with at least one of the projected light rays.
 4. The system of claim 3, wherein projected pixel depth information is determined for at least one pixel in the generated image based on the depth map, the virtual viewpoint, and light rays associated with the at least one projected pixel.
 5. The system of claim 4, wherein protected pixel depth information for a projected pixel is based on minimizing the variance for the projected pixel across the image data within the plurality of images captured from the multiple viewpoints.
 6. The system of claim 3, wherein the image manipulation application further configures the processor to combine projected pixels having the same location within the generated image.
 7. The system of claim 6, wherein the projected pixels having the same location are combined based on a weighted average of the pixels.
 8. The system of claim 1, further comprising a sensor configured to obtain input data indicative of a position within the plurality of images captured from the multiple viewpoints.
 9. The system of claim 8, wherein the sensor is a touchscreen interface.
 10. The system of claim 8, wherein the sensor is configured to obtain spatial location information.
 11. The system of claim 8, wherein the sensor is a camera configured to obtain input data selected from the group consisting of head tracking data and gaze tracking data.
 12. The system of claim 8, wherein the virtual viewpoint is selected based on the input data. 